﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using PreCommitHook.Logica.Comandos;
using PreCommitHook.Logica.Comandos.ComandoMotorRegla;
using PreCommitHook.Logica.Comandos.ComandoMotorRegla;
using PreCommitHook.Entidades;

namespace PreCommitHook.Logica
{
    public class Program : Comando
    {
        private List<Comando> _comandos;

        public Program()
        {
            _comandos = new List<Comando>();
            _comandos.Add(new ConsultarIdUsuarioSVN());
            _comandos.Add(new ConsultarIdProyecto());
            _comandos.Add(new ComandoValidarArchivo());
        }
         

        override public void Ejecutar()
        {

            Resultado result = new Resultado();
            //Parser metodo = new Parser();
            _comandos[0].Tipo = Tipo;
            _comandos[0].Ejecutar();

            if (_comandos[0].Id != 0)
                result = , FuncConsultarIdProyecto(FuncConsultarIdUsuario(args[0])),
                                                           FuncConsultarIdUsuario(args[0]));
            
            if (result.Respuesta)
            {
                string correoUsuario = FuncConsultarCorreo(args[0]);

                EnviarCorreo(correoUsuario, "Commit Exitoso", Convert.ToString(result.Fecha));
                Environment.Exit(0);
            }
            else //En caso de que el archivo no cumpla con las reglas no se 
            {    //hace el commit y se manda correo al usuario
                string correoUsuario = FuncConsultarCorreo(args[0]);

                EnviarCorreo(correoUsuario, result.Linea, result.Mensaje, Convert.ToString(result.Fecha));
                Environment.Exit(1);
            }
        }

    }
}
